package com.jintoufs.util;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.regex.Pattern;

public class DealUerPhotos {

	/**
	 * 这功能为检查是否存在放用户头像的目录，如果目录没有相片，则把项目中的默认相片复制到磁盘目录下
	 * 如果用户数据库中的字段被人为搞坏了，也使用磁盘中的默认相片
	 * 
	 * @parame dirPath 存放头像的目录
	 * @param servicePath
	 *            服务器项目上的userPhotos目录
	 * 
	 */
	public static void dealDir(String dirPath, String servicePath) {
		String sp = System.getProperty("file.separator");

		File myDir = new File(dirPath);
		// 应用程序中的默认相片
		String defaultPhoto = servicePath + sp + "default1.jpg";
		// 磁盘上的默认相片
		String defaultPhotoInDisk = dirPath + sp + "default1.jpg";
		File filephoto = new File(defaultPhotoInDisk);
		// 如果路径是个目录而且存在，返回true
		if (!myDir.exists()) {
			myDir.mkdirs();
		} else {
			if (myDir.isFile()) {
				myDir.delete();
				myDir.mkdirs();
			}
		}
		// 下面的功能是如果磁盘中不存在
		if (!filephoto.exists()) {
			try {
				// 应用程序中的相片作为输入流，获取之后，写到输出流存储到磁盘中
				FileInputStream fis = new FileInputStream(defaultPhoto);
				BufferedInputStream bis = new BufferedInputStream(fis);
				FileOutputStream fileos = new FileOutputStream(defaultPhotoInDisk);
				BufferedOutputStream bfileos = new BufferedOutputStream(fileos);
				byte buf[] = new byte[1024 * 2];
				int len = bis.read(buf);
				while (len != -1) {
					bfileos.write(buf, 0, len);
					len = bis.read(buf);
				}
				bfileos.close();
				fileos.close();
				bis.close();
				fis.close();

			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		}

	}


	/**
	 * 必须是合法的字符
	 * 
	 * @param str
	 * @return
	 */
	public static boolean isIntegerTen(String str) {
		// 只能是10位数字
		String regex = "^[0-9]{1,10}$";
		Pattern pattern = Pattern.compile(regex);
		boolean flag = pattern.matcher(str).matches();
		return flag;
	}

}
